package com.xiaoyu.string;

/**
 * @program: DS_and_A
 * @description: 反转字符串中所有的单词
 * 给定一个字符串，你需要反转字符串中每个单词的字符顺序，同时仍保留空格和单词的初始顺序。
 *
 * 示例：
 *
 * 输入："Let's take LeetCode contest"
 * 输出："s'teL ekat edoCteeL tsetnoc"
 *
 * 提示：
 *
 * 在字符串中，每个单词由单个空格分隔，并且字符串中不会有任何额外的空格
 * @author: YuWenYi
 * @create: 2021-06-06 10:09
 **/
public class ReverseWords_557 {

    public static String reverseWords(String s) {
        char[] chars = s.toCharArray();
        int l = 0;
        for (int i = 0; i < chars.length; i++) {
            if (chars[i] == ' ' || i == chars.length-1){
                int r = i-1;
                if (i == chars.length-1) r = i;
                while (l < r) {
                    char t = chars[l];
                    chars[l] = chars[r];
                    chars[r] = t;
                    l++;
                    r--;
                }
                l = i+1;
            }
        }
        return new String(chars);
    }

    public static void main(String[] args) {
        String s = reverseWords("Let's take LeetCode contest");
        System.out.println(s);
    }
}
